package com.bee.common.core.enums;

import com.bee.common.core.exception.DomainException;
import com.bee.common.core.result.Result;
import com.bee.common.core.result.ResultCode;

/**
 * Created by liekkas on 2017-8-1.
 * 枚举工具类
 */
public class EnumUtils {

    /**
     * 根据序列获取枚举
     * @param enumType
     * @param enumVal
     * @param <E>
     * @return
     */
    public static <E extends Enum<E>>E enumOf(Class<E> enumType,Integer enumVal){
        try{
            return enumType.getEnumConstants()[enumVal];
        }catch (Exception e){
            throw new DomainException(Result.fail(),e);
        }
    }

    /**
     * 根据key name获取枚举
     * @param enumType
     * @param enumVal
     * @param <E>
     * @return
     */
    public static <E extends Enum<E>>E enumOf(Class<E> enumType,String enumVal){
        try{
            return Enum.valueOf(enumType,enumVal);
        }catch (Exception e){
            throw new DomainException(Result.fail(),e);
        }
    }
}
